| Matching Statements |
| File1 Line# |
File2 Line# |
Statement |
| 2 | 2 | 0FAH: DECLARE BDOS LITERALLY , BOOT LITERALLY |
| 3 | 3 | SUBMIT: PROCEDURE |
| 9 | 9 | DECLARE LIT LITERALLY , |
| 10 | 10 | DCL LIT , |
| 11 | 11 | PROC LIT , |
| 12 | 12 | ADDR LIT , |
| 13 | 13 | CILL LIT , |
| 14 | 14 | LCA LIT |
| 15 | 15 | 111$1010B, |
| 16 | 16 | CTL LIT , |
| 17 | 17 | ENDFILE LIT |
| 20 | 20 | (LN1, LN2, LN3) BYTE INITIAL ( ), |
| 21 | 21 | FILL (2) BYTE INITIAL ( ), |
| 22 | 22 | FSBA ADDRESS INITIAL (5011), |
| 23 | 23 | BUFA ADDRESS INITIAL (BGA), |
| 24 | 24 | DBCA (132) BYTE INITIAL |
| 25 | 25 | (0, , ,0), |
| 26 | 26 | DRFC BYTE, |
| 27 | 27 | BUFF BASED BUFA (128) BYTE, |
| 28 | 28 | SFCB BASED FCPA (33) BYTE |
| 30 | 30 | MON1: PROCEDURE (B,A) |
| 31 | 31 | DECLARE F BYTE, |
| 33 | 33 | GO TO BDOS, |
| 34 | 34 | END MON1 |
| 36 | 36 | MON2:PROCEDURE (B,A) BYTE |
| 37 | 37 | DECLARE F BYTE |
| 38 | 38 | A ADDRESS |
| 39 | 39 | GO TO BDOS |
| 40 | 40 | END MON2 |
| 43 | 43 | TRUE LITERALLY , |
| 44 | 44 | FALSE LITERALLY , |
| 45 | 45 | FOREVER LITERALLY , |
| 46 | 46 | CR LITERALLY , |
| 47 | 47 | LF LITERALLY , |
| 48 | 48 | WHAT LITERALLY |
| 50 | 50 | PRINT: PROCEDURE(A) |
51 103 | 51 103 | DECLARE A ADDRESS |
| 54 | 54 | CALL MON1(5,A) |
| 55 | 55 | END PRINT |
| 57 | 57 | DECLARE DCNT BYTE |
| 58 | 58 | OPEN: PROCEDURE(FCB) |
59 64 69 74 79 84 | 59 64 69 74 79 84 | DECLARE FCB ADDRESS |
| 60 | 60 | DCNT = MON2(15,FCB) |
| 61 | 61 | END OPEN |
| 63 | 63 | CLOSE: PROCEDURE(FCB) |
| 65 | 65 | DCNT = MON2(16,FCB) |
| 66 | 66 | END CLOSE |
| 68 | 68 | DELETE: PROCEDURE(FCB) |
| 70 | 70 | CALL MON1(19,FCB) |
| 71 | 71 | END DELETE |
| 73 | 73 | DISKREAD: PROCEDURE(FCB) BYTE |
| 75 | 75 | RETURN MON2(20,FCB) |
| 76 | 76 | END DISKREAD |
| 78 | 78 | DISKWRITE: PROCEDURE(FCB) BYTE |
| 80 | 80 | RETURN MON2 (21, FCB) |
| 81 | 81 | END DISKWRITE |
| 83 | 83 | MAKE: PROCEDURE(FCB) |
| 85 | 85 | DCNT = MON2(22,FCB) |
| 86 | 86 | END MAKE |
| 88 | 88 | MOVE: PROCEDURE(S,D,N) |
| 89 | 89 | DECLARE (S,D) ADDRESS, N BYTE |
| 90 | 90 | DECLARE A BASED S BYTE, B BASED D BYTE |
| 91 | 91 | DO WHILE (N := N - 1) <> 255 |
| 92 | 92 | B = A |
| 92 | 92 | S = S + 1 |
| 92 | 92 | D = D + 1 |
| 94 | 94 | END MOVE |
| 96 | 96 | CRLF: PROCEDURE |
| 97 | 97 | CALL PRINT (.(CR,LF, )) |
| 98 | 98 | END CRLF |
| 100 | 100 | DECLARE OLDSP ADDRESS |
| 102 | 102 | ERROR: PROCEDURE(A) |
104 108 | 104 108 | CALL CRLF |
| 105 | 105 | CALL PRINT(. ) |
| 106 | 106 | CALL PRINT(.LN1) |
| 107 | 107 | CALL PRINT(A) |
| 109 | 109 | STACKPTR = OLDSP |
| 111 | 111 | END ERROR |
| 113 | 113 | DECLARE SSTRING(128) BYTE, |
| 114 | 114 | SBP BYTE |
| 116 | 116 | SETUP |
| 118 | 118 | DECLARE (I,B,ST) BYTE |
| 119 | 119 | DELIMITER: PROCEDURE BYTE |
| 121 | 121 | RETURN (B := BUFF(I)) = |
| 122 | 122 | END DELIMITER |
| 124 | 124 | I,SBP = 0 |
| 125 | 125 | DO WHILE (I:=I+1) <= BUFF |
| 127 | 127 | DO WHILE DELIMITER |
127 135 | 127 135 | I = I + 1 |
| 130 | 130 | ST = SBP |
| 131 | 131 | DO WHILE NOT DELIMITER AND I <= BUFF |
| 132 | 132 | IF (SBP := SBP + 1) >= LAST(SSTRING) THEN |
133 146 175 186 189 208 | 133 146 175 186 189 208 | CALL ERROR (. ) |
| 134 | 134 | SSTRING(SBP) = B |
| 138 | 138 | SSTRING(ST) = SBP - ST |
| 139 | 139 | SBP = SBP + 1 |
| 142 | 142 | SSTRING(SBP) = 0 |
| 143 | 143 | CALL MOVE(. ,FCBA+9,3) |
| 144 | 144 | CALL OPEN(FCBA) |
| 145 | 145 | IF DCNT = 255 THEN |
| 148 | 148 | SBP = 128: |
| 150 | 150 | END SETUP |
| 152 | 152 | GETSOURCE: PROCEDURE BYTE |
154 184 | 154 184 | DECLARE B BYTE |
| 155 | 155 | IF SBP > 127 THEN |
| 156 | 156 | IF DISK READ(FCBA) <> 0 THEN |
| 157 | 157 | RETURN ENDFILE |
| 158 | 158 | SBP = C |
| 160 | 160 | IF (B := BUFF((SBP :=SBP+1)-1)) = CR THEN |
| 162 | 162 | IF (LN3 := LN3 + 1) > THEN |
| 163 | 163 | LN3 = |
| 164 | 164 | IF (LN2 := LN2 +1) > THEN |
| 165 | 165 | LN2 = |
| 166 | 166 | LN1 = LN1 + 1 |
| 169 | 169 | RETURN B |
| 170 | 170 | END GETSOURCE |
| 172 | 172 | WRITEBUFF: PROCEDURE |
| 174 | 174 | IF DISKWRITE(.DFCP) <> 0 THEN |
| 176 | 176 | END WRITEBUFF |
| 178 | 178 | DECLARE RBUFF(1024) BYTE, |
| 179 | 179 | RBP ADDRESS, |
| 180 | 180 | RLEN BYTE |
| 182 | 182 | FILLRBUFF: PROCEDURE |
| 183 | 183 | PUTRBUFF: PROCEDURE(A) |
| 185 | 185 | IF (RBP := RBP + 1) > LAST(RBUFF) THEN |
| 187 | 187 | RBUFF(RBP) = B |
| 188 | 188 | IF (RLEN := RLEN + 1) > 126 THEN |
| 190 | 190 | END PUTRBUFF |
| 192 | 192 | DECLARE (READING,I,TBP,B) BYTE |
| 193 | 193 | NONZERO: PROCEDURE BYTE |
| 194 | 194 | RETURN (I := SSTRING(TBP) + 1) > 1 |
| 195 | 195 | END NONZERO |
| 198 | 198 | RBUFF,RBP = 0 |
| 199 | 199 | READING = TRUE |
| 200 | 200 | DO WHILE READING |
| 201 | 201 | RLEN = 0 |
| 202 | 202 | DO WHILE (B:=GETSOURCE) <> ENDFILE AND B <> CR |
| 203 | 203 | IF B = CTL THEN |
| 204 | 204 | CALL PUTRBUFF(GETSOURCE AND 1$1111B) |
| 205 | 205 | IF B <> BF THEN |
| 206 | 206 | IF B = THEN |
| 207 | 207 | IF (B := GETSOURCE - ) > 9 THEN |
| 209 | 209 | TBP = 0: |
| 210 | 210 | DO WHILE (B := B - 1) <> 255 |
| 211 | 211 | IF NONZERO THEN TBP = TBP + 1 |
| 213 | 213 | IF NONZERO THEN |
| 214 | 214 | DO WHILE (I := I - 1) <> 0 |
| 215 | 215 | CALL PUTRBUFF(SSTRING(TBP := TBP + 1)) |
| 218 | 218 | CALL PUTRBUFF(B) |
| 221 | 221 | READING = B = CR |
| 222 | 222 | CALL PUTRBUFF(RLEN) |
| 225 | 225 | END FILLRBUFF |
| 227 | 227 | MAKEFILE: PROCEDURE |
| 229 | 229 | DECLARE I BYTE |
| 230 | 230 | GETRBUFF: PROCEDURE BYTE |
| 231 | 231 | RETURN RBUFF (RBP := RBP - 1) |
| 232 | 232 | END GETBUFF |
| 234 | 234 | CALL DELETE(.DFCB) |
| 235 | 235 | DREC = 0 |
| 236 | 236 | CALL MAKE(.DFCB) |
237 248 | 237 248 | IF DCNT = 255 THEN CALL ERROR (. ) |
| 238 | 238 | DO WHILE (1 := GETRBUFF) <> 0 |
| 240 | 240 | BUFF = I |
| 240 | 240 | BUFF (I+1) = |
| 241 | 241 | DO WHILE 1 > 0 |
| 242 | 242 | BUFF(I) = GETFBUFF |
| 242 | 242 | I=I-1 |
| 245 | 245 | CALL WRITEBUFF |
| 247 | 247 | CALL CLOSE(.0FCA) |
| 249 | 249 | END MAKEFILE |
| 252 | 252 | DECLARE STACK(10) ADDRESS |
| 253 | 253 | OLDSP = STACKPTR |
| 254 | 254 | STACKPTR = .STACK(LENGTH(STACK)) |
| 256 | 256 | CALL SETUP |
| 257 | 257 | CALL FILLRBUFF |
| 258 | 258 | CALL MAKEFILE |
| 259 | 259 | GO TO BOOT |
| 260 | 260 | END SUBMIT |

| Matching Comments and Strings |
| File1 Line# |
File2 Line# |
Comment/String |
| 1 | 1 | SUBMIT FUNCTION - CREATE $$$. SUB FILE WITH COMMANDS |
| 2 | 2 | 3FFDH |
| 6 | 6 | COPYRIGHT (C) GARY A. KILDALL |
| 7 | 7 | JUNE 1975 |
| 9 | 9 | LITERALLY |
| 10 | 10 | DECLARE |
| 11 | 11 | PROCEDURE |
| 12 | 12 | ADDRESS |
| 13 | 13 | CCH |
| 14 | 14 | 110$0001B, /* LOWER CASE A */ |
| 15 | 15 | LC7 LIT |
| 15 | 15 | LOWER CASE Z |
| 16 | 16 | 5FH |
| 16 | 16 | SHIFT - N CONTROL KEY FLAG) |
| 17 | 17 | 1AH |
| 17 | 17 | CP/M END OF FILE |
| 20 | 20 | 001 |
| 23 | 23 | DISK TO BUFFER ADDRESS |
| 25 | 25 | $$$ |
| 25 | 25 | SUM |
| 25 | 25 | DESTINATION FILE |
| 26 | 26 | NEXT RFCORD TO WRITE |
| 27 | 27 | DISKIO BUFFER |
| 28 | 28 | SOURCE FILE CONTROL |
| 45 | 45 | WHILE TRUE |
| 52 | 52 | PRINT THE STRING STARTING AT ADDRESS A UNTIL THE |
| 53 | 53 | NEXT DOLLAR SIGN IS ENCOUNTERED |
| 100 | 100 | CALLING PROGRAM'S STACK POINTER |
| 105 | 105 | ERROR ON LINE $ |
| 110 | 110 | RETURN TO CCP |
| 113 | 113 | SUBSTITUTE STRINGS |
| 114 | 114 | POINTER INTO SSTRING |
| 117 | 117 | X,SUB FILE IS IN FIRST 16 BYTES, SUBSTITUTE STRING IN LAST |
| 120 | 120 | RETURNS TRUE IF POSITION I OF BUFF IS A DELIMITER |
| 123 | 123 | COPY SUBSTITUTE STRINGS |
| 126 | 126 | DEBLANK AND COLLECT STRING |
| 129 | 129 | START OF STRING |
| 133 | 133 | PARAMETER LIST TOO LONG |
| 137 | 137 | SAVE LENGTH |
| 141 | 141 | MARK END OF LIST |
| 143 | 143 | SUB |
| 143 | 143 | SET FILE TYPE TO SUB |
| 146 | 146 | NO ''SUB'' FILE PRESENT$ |
| 147 | 147 | OTHERWISE FILE IS OPEN - READ SUBSEQUENT DATA |
| 148 | 148 | CAUSES READ BELOW |
| 153 | 153 | READ THE TEXT SOURCE CHARACTER |
| 161 | 161 | INCREMENT LINE |
| 173 | 173 | WRITE THE CONTENTS OF THE BUFFER TO DISK |
| 174 | 174 | ERROR |
| 175 | 175 | DISK WRITE ERRORS |
| 178 | 178 | JCL BUFFER |
| 179 | 179 | JCL BUFFER POINTER |
| 180 | 180 | LENGTH OF CURRENT COMMAND |
| 186 | 186 | JCL BUFFER OVERFLOW$ |
| 189 | 189 | COMMAND TOO LONG$ |
| 197 | 197 | FILL THE JCL BUFFER |
| 201 | 201 | RESET COMMAND LENGTH |
| 203 | 203 | CONTROL KEY |
| 206 | 206 | COPY SUBSTITUTE STRING |
| 208 | 208 | INVALID PARAMETER SPECIFICATION$ |
| 209 | 209 | FIND STRING B |
| 213 | 213 | COPY TO RBUFF |
| 217 | 217 | NOT A '$' |
| 220 | 220 | OF LINE OR INPUT FILF - COMPUTE LENGTH |
| 222 | 222 | STORE LENGTH |
| 224 | 224 | ENTIRE FILE HAS BEEN READ AND PROCESSED |
| 228 | 228 | WRITE RESULTING COMMAND FILE |
| 235 | 235 | ZERO THE NEXT RECORD TO WRITE |
| 237 | 237 | DIRECTORY FULL$ |
| 239 | 239 | COPY I CHARACTERS TO BUFFER |
| 244 | 244 | BUFFER FILLED TO $ |
| 248 | 248 | CLOSE ERROR$ |
| 251 | 251 | ENTER HERE FROM THE CCP WITH THE FCH SET |
| 252 | 252 | WORKING STACK |
| 259 | 259 | REBOOT CAUSES COMMANDS TO BE EXECUTED |

| Matching Instruction Sequences |
| File1 Line# |
File2 Line# |
Number of matching instructions |
| 2 | 2 | 220 |

| Matching Identifiers |
| 0FAH |
0FCA |
1$1111B |
10 |
1024 |
111$1010B |
126 |
127 |
| 128 |
132 |
15 |
16 |
19 |
20 |
21 |
22 |
| 255 |
33 |
5011 |
ADDR |
BDOS |
BF |
BGA |
BOOT |
| BUFA |
BUFF |
CILL |
CLOSE |
CR |
CRLF |
CTL |
DBCA |
| DCL |
DCNT |
DELETE |
DELIMITER |
DFCB |
DFCP |
DISK |
DISKREAD |
| DISKWRITE |
DREC |
DRFC |
ENDFILE |
ERROR |
FALSE |
FCB |
FCBA |
| FCPA |
FILL |
FILLRBUFF |
FOREVER |
FSBA |
GETBUFF |
GETFBUFF |
GETRBUFF |
| GETSOURCE |
LAST |
LCA |
LENGTH |
LF |
LIT |
LN1 |
LN2 |
| LN3 |
MAKE |
MAKEFILE |
MON1 |
MON2 |
MOVE |
NONZERO |
OLDSP |
| OPEN |
PRINT |
PROC |
PUTRBUFF |
RBP |
RBUFF |
READ |
READING |
| RLEN |
SBP |
SETUP |
SFCB |
SSTRING |
ST |
STACK |
STACKPTR |
| SUBMIT |
TBP |
TRUE |
WHAT |
WRITEBUFF |

| Partially Matching Identifiers |
| *** NONE *** |
|